Deferred data post

ABSTRACT

Various methods, systems, and computer program products for deferring transmission of data related to collapsing a collapsible display panel are presented. The collapsible display panel may be collapsed. State data that indicates the collapsible display panel has been collapsed may be generated. A determination that no non-state change data corresponding to the collapsible display panel needs to be transferred to a server may be made. In response, the state data may be stored at least until non-state data is to be transmitted to the server. At some time after storing the state data, non-state data that is to be transmitted to the server may be identified. In response to identifying the non-state data that is to be transmitted to the server, the state data and the non-state data may be transmitted to the server together.

BACKGROUND

Collapsible display panels (also referred to as collapsible panels) maybe used to display information to users in a compact and/or organizedmanner. A set of collapsible panels may allow for various portions of adataset to be displayed to the user at a time. Each collapsible panelmay display data that is part of a larger dataset. Portions of thedataset may be displayed while other portions of the dataset are notdisplayed based upon which collapsible panels are expanded and whichcollapsible panels are collapsed.

Collapsible panels may be used on a web page. As such, to decrease theamount of data that needs to be transmitted from a server across anetwork to a computerized device, portions of the dataset not to beinitially displayed may not, at least initially, be transmitted to thecomputerized device. When a user indicates that a collapsible panellinked with a portion of the dataset not initially displayed is to bedisplayed, this portion of the dataset may be retrieved from the server.

Typically, whenever a user provides input indicating that a collapsiblepanel is to be collapsed, data is transmitted between the computerizeddevice and the server such that the server is made aware of the state ofthe collapsible panels displayed by the computerized device. Suchcommunication between the computerized device and the server may beinefficient. For example, performance of the collapsible display panel,the computerized device, the network, and/or the server may be adverselyaffected by the communication that may be required when collapsiblepanels are collapsed.

SUMMARY

Various arrangements for deferring a transmission of data related tocollapsing a collapsible display panel are presented. In someembodiments, a method for deferring a transmission of data related tocollapsing a collapsible display panel. The method may includecollapsing the collapsible display panel. The method may includegenerating state data that indicates the collapsible display panel hasbeen collapsed. The method may include determining that no non-statedata needs to be transmitted to a server. The method may include, inresponse to determining that no non-state data needs to be transmittedto the server, storing, by the computerized device, the state data atleast until non-state data is to be transmitted to the server. Themethod may include, after storing the state data, identifying non-statedata that is to be transmitted to the server. The method may include inresponse to identifying the non-state data that is to be transmitted tothe server, transmitting to the server, the state data and the non-statedata together.

In embodiments of such a method, one or more of the following may bepresent: The method may include, after collapsing the collapsibledisplay panel, receiving input that indicates to expand the collapsibledisplay panel. The method may include, in response to receiving inputthat indicates to expand the collapsible display panel, determining thatthe state data has not been transmitted to the server. The method mayinclude, in response to determining that the state data has not beentransmitted to the server, expanding the collapsible display panelwithout retrieving data corresponding to the collapsible display panelfrom the server. Transmitting to the server the state data and thenon-state data may comprise transmitting state data corresponding to aplurality of collapsible display panels together. The method mayinclude, after collapsing the collapsible display panel and transmittingthe state data, receiving input that indicates to expand the collapsibledisplay panel that is collapsed. The method may include, retrieving fromthe server, a portion of a dataset corresponding to the collapsibledisplay panel. The non-state data may comprise data provided by a user.The collapsible display panel may be displayed within an Internetbrowser. The method may include determining that the non-state data isvalid, wherein transmitting the non-state data to the server isperformed in response to determining the non-state data is valid. Thecollapsible display panel may be one of a plurality of collapsibledisplay panels that are each configured to display a portion of adataset stored by the server. The method may further comprise receivinga webpage that comprises the plurality of display panels.

In some embodiments, a computer program product residing on anon-transitory processor-readable medium and comprisingprocessor-readable instructions is presented. The processor-readableinstructions may be configured to cause a processor to cause acollapsible display panel to be collapsed. The processor-readableinstructions may be configured to cause the processor to generate statedata that indicates the collapsible display panel has been collapsed.The processor-readable instructions may be configured to cause theprocessor to determine that no non-state data needs to be transmitted toa server. The processor-readable instructions may be configured to causethe processor to, in response to determining that no non-state dataneeds to be transmitted to the server, cause, at least until non-statedata is to be transmitted to the server, the state data to be stored.The processor-readable instructions may be configured to cause theprocessor to, after storing the state data, identify non-state data thatis to be transmitted to the server. The processor-readable instructionsmay be configured to cause the processor to, in response to identifyingthe non-state data that is to be transmitted to the server, cause thestate data and the non-state data to be transmitted to the server.

Embodiments of such a computer program may include one or more of thefollowing: The processor-readable instructions may be configured tocause the processor to, after collapsing the collapsible display panel,cause input to be received that indicates to expand the collapsibledisplay panel. The processor-readable instructions may be configured tocause the processor to, in response to receiving input that indicates toexpand the collapsible display panel, determine that the state data hasnot been transmitted to the server. The processor-readable instructionsmay be configured to cause the processor to, in response to determiningthat the state data has not been transmitted to the server, cause thecollapsible display panel to be expanded without retrieving datacorresponding to the collapsible display panel from the server. Theprocessor-readable instructions configured to cause the processor tocause the state data and the non-state data to be transmitted to theserver may comprise additional processor-readable instructionsconfigured to cause state data corresponding to a plurality ofcollapsible display panels to be transmitted together. Theprocessor-readable instructions may be configured to cause the processorto, after collapsing the collapsible display panel and transmitting thestate data, cause input to be received that indicates to expand thecollapsible display panel that is collapsed. The processor-readableinstructions may be configured to cause the processor to cause a portionof a dataset corresponding to the collapsible display panel to beretrieved from the server. Non-state data may comprise data provided bya user. The collapsible display panel may be displayed within anInternet browser. The processor-readable instructions may be configuredto cause the processor to determine that the non-state data is valid,wherein transmitting the non-state data to the server is performed inresponse to determining the non-state data is valid. The collapsibledisplay panel may be one of a plurality of collapsible display panelsthat are each configured to display a portion of a dataset stored by theserver.

In some embodiments, a system for deferring a transmission of datarelated to collapsing a collapsible display panel is presented. Thesystem may include a computer system having a processor and a memorycommunicatively coupled with and readable by the processor and havingstored therein processor-readable instructions. When executed by theprocessor, the instructions may cause the processor to cause thecollapsible display panel to be collapsed. When executed by theprocessor, the instructions may cause the processor to generate statedata that indicates the collapsible display panel has been collapsed.When executed by the processor, the instructions may cause the processorto determine that no non-state data needs to be transmitted to a server.When executed by the processor, the instructions may cause the processorto, in response to determining that no non-state data needs to betransmitted to the server, cause, at least until non-state data is to betransmitted to the server, the state data to be stored. When executed bythe processor, the instructions may cause the processor to, afterstoring the state data, identify non-state data that is to betransmitted to the server. When executed by the processor, theinstructions may cause the processor to, in response to identifying thenon-state data that is to be transmitted to the server, cause the statedata and the non-state data to be transmitted to the server.

Embodiments of such a system may include one or more of the following:The collapsible display panel may be one of a plurality of collapsibledisplay panels that are each configured to display a portion of adataset stored by the server. When executed by the processor, theinstructions may cause the processor to, after collapsing thecollapsible display panel, cause input to be received that indicates toexpand the collapsible display panel. When executed by the processor,the instructions may cause the processor to, in response to receivinginput that indicates to expand the collapsible display panel, determinethat the state data has not been transmitted to the server. Whenexecuted by the processor, the instructions may cause the processor to,in response to determining that the state data has not been transmittedto the server, cause the collapsible display panel to be expandedwithout retrieving data corresponding to the collapsible display panelfrom the server. The processor-readable instructions configured to causethe processor to cause the state data and the non-state data to betransmitted to the server may comprise additional processor-readableinstructions configured to cause state data corresponding to a pluralityof collapsible display panels to be transmitted together.

BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the nature and advantages of variousembodiments may be realized by reference to the following figures. Inthe appended figures, similar components or features may have the samereference label. Further, various components of the same type may bedistinguished by following the reference label by a dash and a secondlabel that distinguishes among the similar components. If only the firstreference label is used in the specification, the description isapplicable to any one of the similar components having the same firstreference label irrespective of the second reference label.

FIG. 1 illustrates an embodiment of a system configured to usecollapsible panels.

FIG. 2 illustrates an embodiment of collapsed collapsible panels.

FIG. 3 illustrates an embodiment of an expanded collapsible panel amongcollapsed collapsible panels.

FIG. 4 illustrates an embodiment of a method for deferring a data postlinked with collapsing a collapsible display panel that is expanded.

FIG. 5 illustrates another embodiment of a method for deferring a datapost linked with collapsing a collapsible display panel that isexpanded.

FIG. 6 illustrates another embodiment of a method for deferring a datapost linked with collapsing a collapsible display panel that isexpanded.

FIG. 7 illustrates an embodiment of a computer system.

DETAILED DESCRIPTION

Collapsible display panels (also referred to as collapsible panels) maybe used to display information in a compact and/or organized manner. Acollapsible panel may allow for various portions of a dataset to bedisplayed at a time. Each collapsible panel may correspond with acategory of the dataset (e.g., a dataset of car parts may have acollapsible panel for engine parts and a collapsible panel forsuspension parts). Each collapsible panel may be expanded, such that theportion of the dataset associated with that collapsible panel isdisplayed, or the collapsible panel may be collapsed, such that theportion of the dataset associated with that collapsible panel is notdisplayed. The computerized device may notify the server whenever acollapsible panel is expanded and/or collapsed. At least some suchnotifications may not be efficient because the notifications result indata being transmitted between the computerized device and the servervia one or more networks.

Rather than state data being transmitted between the computerized deviceand a server that indicates that a collapsible panel displayed by thecomputerized device has been collapsed, such state data may be stored bythe computerized device until other data, referred to as non-state data,is to be transmitted to the server. As such, the state data may bestored until non-state data is to be transmitted to the server; at thattime, both the non-state data and the state data are transmitted to theserver. As such, rather than at least two pieces of data beingtransmitted to the server independently, the two pieces of data may betransmitted to the server together. Accordingly, the performance of thecollapsible display panel, the computerized device, the network, and/orthe server may be improved by decreasing the amount of communicationbetween the computerized device and server.

When state data is transmitted to the server by the computerized devicemay depend on the actions of a user of the computerized device. If theuser collapsed a collapsible panel, whether non-state data needs to betransmitted to the server may correspond to whether the user has added,modified, or deleted data within the collapsible panel. Non-state datamay refer to data provided to the computerized device by the user.Non-state data may also refer to other forms of data not related to thestate of the collapsible panel, which requires transmission from thecomputerized device to the server. As an example, a collapsible panelmay have one or more data fields in which the user is permitted to add,delete, and/or modify data. If the user adds, deletes, and/or modifiesdata, this non-state data may be transmitted to the server when the usercollapses the collapsible panel. Since non-state data is beingtransmitted to the server, the state data, which indicates that thecollapsible panel has been collapsed, may be transmitted to the servertogether with the non-state data. Transmitting the state data and thenon-state data “together” refers to the state data and non-state databeing transmitted in a group of one or more data packets approximatelyconcurrently (e.g., in contiguous data packets).

If the user has collapsed a collapsible panel without adding, deleting,or modifying data present within the collapsible panel, no non-statedata may need to be transmitted to the server. As such, rather thantransmitting only the state data to the server, the state data is storeduntil other non-state data needs to be transmitted to the server. Thismay involve waiting until the user provides additional and/or modifieddata to another collapsible panel or non-state data not related to acollapsible panel needs to be transmitted to the server. When thenon-state data is to be transmitted to the server, the state datacorresponding to the earlier collapsed panel may be transmitted togetherwith the non-state data to the server. The need for a transmission ofonly state data from the computerized device to the server may bedecreased or eliminated. In some embodiments, multiple pieces of statedata (e.g., related to multiple collapsible panels) may be stored by thecomputerized device until transmitted to the server together withnon-state data.

FIG. 1 illustrates an embodiment of a system 100 configured to usecollapsible panels. System 100 may include computer system 110, server120, database 130, session state database 135, network 140, browser 150,mobile device 160, and wireless network 170. Computer system 110 andmobile device 160 represent two types of computerized devices. While insystem 100, two computerized devices are illustrated, it should beunderstood that fewer or more computerized devices, including additionalcomputer systems, mobile devices, and/or other types of computerizeddevices may be present.

Computer system 110 may be in communication with server 120 via network140. Computer system 110 may represent a computer system that isoperated by a user to perform actions such as viewing and/or interactingwith a webpage. Computer system 110 may include various components. Forexample, various embodiments of computer system 110 are described inrelation to computer system 700 of FIG. 7. As such, a user may viewwebpages using a display device of computer system 110. Further, theuser may provide input via one or more input devices of computer system110. Browser 150 may be executed by computer system 110. Browser 150 maypermit a user to interact with various webpages. Browser 150 may useOracle's application development framework (ADF). Dynamic HTML,JAVASCRIPT, and AJAX may be used to display such webpages. In someembodiments, FLASH may be used. Computer system 110 via a browser 150and network 140 may retrieve one or more webpages from server 120.Browser 150 may permit a user, via computer system 110, to interact withvarious webpages. Browser 150 may contain state data cache 152. Statedata cache 152 may be used to, at least temporarily, store state data atleast until the state data is transmitted to server 120. Following statedata being transmitted from computer system 110 to server 120, the statedata may be cleared from state data cache 152.

Server 120 may represent a computer system that is configured tofunction as a web server to provide webpages to various computer systemsusing network 140. Server 120 may use Oracle's application developmentframework (ADF). Server 120 may serve one or more webpages that containone or more collapsible panels. Each collapsible panel of a webpage maybe configured to display a portion of a dataset. Such a dataset may bestored using one or more databases, such as database 130. Besidesdisplaying a portion of the dataset, one or more collapsible panels maybe configured to receive data from a user. Such data may be received byserver 120 and stored using one or more databases, such as database 130.When initially transmitted from server 120 to computer system 110, oneor more collapsible panels of the webpage may be either initiallyexpanded and/or collapsed as displayed to the user. When a collapsiblepanel is expanded, the data associated with that collapsible panel isconfigured to be displayed by computer system 110. As such, when thecollapsible panel is expanded, the corresponding data is transmitted tocomputer system 110 for display. When a collapsible panel is collapsed,the data associated with that collapsible panel is configured to not bedisplayed. As such, the data that corresponds to the collapsible panelmay not need to be transmitted from server 120 to computer system 110.Rather, the data that corresponds to the collapsible panel may only betransmitted to computer system 110 from server 120 if a user of computersystem 110 requests the collapsible panel be expanded. For example, theuser may use an input device of computer system 110, such as a mouse, toclick on the collapsed collapsible panel to trigger the collapsiblepanel to expand.

Session state database 135 may include one or more databases, or otherdata storage arrangements, in communication with server 120. Sessionstate database 135 may store session information for one or more usersthat are interacting with server 120 via computerized devices such ascomputer system 110 and mobile device 160. Session state database 135may include, possibly for each user, session state data that indicateswhich collapsible panels of a webpage are expanded and/or whichcollapsible panels of the webpage are collapsed. As such, if the webpagecontaining the collapsible panels needs to be reloaded by browser 150 ofcomputer system 110, session state data from session state database 135may be used to reload the webpage with the appropriate collapsiblepanels expanded and collapsed. Session state database 135 may be updatedusing state data received from computerized devices such as computersystem 110 and mobile device 160.

Network 140 may be used to communicate between various devices such ascomputer system 110 and server 120. Network 140 may represent one ormore interconnected networks. For example, network 140 may include oneor more public networks, such as the Internet. Network 140 may alsoinclude one or more private networks, such as a corporate intranet.Wireless network 170 may be used to communicate with one or more mobiledevices, such as mobile device 160. Mobile device 160 may be configuredto load and interact with webpages. As such, mobile device 160 maycommunicate with a wireless network 170. Wireless network 170 may be incommunication with network 140. In some embodiments, wireless network170 may be in direct communication with server 120 (e.g., communicationmay occur between server 120 and mobile device 160 without use ofnetwork 140).

Similar to computer system 110, mobile device 160 may execute a browser.Browser 165 may permit a user, via mobile device 160, to interact withvarious webpages. Such webpages may contain one or more collapsiblepanels. Browser 165 may contain, or have access to, state data cache167. State data cache 167 may be used to, at least temporarily, storestate data at least until the state data is transmitted to server 120.Following the state data being transmitted from mobile device 160 toserver 120, the corresponding state data may be cleared from state datacache 167.

It should be understood that system 100 may represent a simplifiedembodiment of a system configured to present collapsible panels. Forexample, server 120 may be in communication with a large number ofcomputerized devices, which may, in turn, be operated by a large numberof users. As such, server 120 may store state data for a large number ofusers.

FIG. 2 illustrates an embodiment of a browser 200 displaying collapsedcollapsible panels. Browser 200 may represent browser 150 and/or browser165 of FIG. 1, or may represent some other browser. Browser 200 displaysnine collapsed collapsible panels, including collapsible panel 210. Adataset may be associated with the nine collapsed collapsible panels ofbrowser 200. Portions of the dataset may be associated with eachcollapsible panel, such as collapsible panel 210. As an example, thedataset may be data pertaining to various animals. Each collapsiblepanel may be related to a category of animals. For example, collapsiblepanel 210 relates to dogs. While, in some embodiments, collapsiblepanels may be associated with the category of data present within thedataset, collapsible panels do not necessarily need to be organized intocoherent categories.

Since each of the nine collapsible panels of browser 200 are collapsed,the portion of the dataset associated with each collapsible panel maynot have been transmitted to the computerized device displaying browser200. For example, the server that transmitted the webpage containing thenine collapsed collapsible panels may be configured to initiallytransmit each of the collapsible panels as collapsed. While this is truein the illustrated embodiment of browser 200, it should be understoodthat in other embodiments various collapsible panels may be configuredto be initially displayed by browser 200 as expanded. If a collapsiblepanel is configured to be initially displayed as expanded, the portionof the dataset associated with the collapsible panel may be transmittedto the computerized device executing browser 200 with the webpage.Besides a collapsible panel initially being either collapsed orexpanded, a user may provide input to indicate that a collapsible panelshould be expanded or collapsed. For example, referring to collapsiblepanel 210, a user may click (or provide some other form of input) oncollapsible panel 210 to indicate that this collapsible panel is to beexpanded. Indicator 220 may provide a visual indication (besides theportion of the dataset corresponding to collapsible panel 210 not beingdisplayed) that collapsible panel 210 is collapsed. In some embodiments,additional collapsible panels may be nested within a collapsible panel.

FIG. 3 illustrates an embodiment of browser 300 with an expandedcollapsible panel. Browser 300 may represent an embodiment of browser200 of FIG. 2 with collapsible panel 210 expanded. As such, browser 300may represent browser 150 and/or browser 165 of FIG. 1 or may representsome other browser. In browser 300, a user may have provided inputindicating that collapsible panel 210 is to be expanded. As such, theportion of the dataset associated with collapsible panel 210 may betransmitted from a server, such as server 120 of system 100, to thecomputerized device executing browser 300. Collapsed collapsible panel210 of browser 200 may be displayed in browser 300 as expanded.Indicator 310 may vary from indicator 220 of FIG. 2, to indicate thatcollapsible panel 210 has been expanded.

The portion of the dataset associated with collapsible panel 210 mayinclude data that is editable and/or uneditable by the user. Forexample, the dataset may include a listing of various breeds of dogs.The user may not be permitted to edit this listing of breeds of dogs.However, other data of the dataset may be editable by the user. Forexample, in the illustrated embodiment of FIG. 3, a quantity and age isassociated with each breed of dog. Such data of the dataset may be addedand/or modified by the user. For example, the user may be permitted tochange the quantity and/or age of breeds of dogs listed and/or add a newquantity and/or age to a breed of dog that does not currently have aquantity and/or age associated with it.

Following viewing, editing, and/or adding data to expanded collapsiblepanel 210 of browser 300, a user may desire to collapse collapsiblepanel 210. To do this, for example, the user may click on indicator 310to cause collapsible panel 210 to contract from its expanded state tothe collapsed state illustrated in browser 200 of FIG. 2. Collapsingcollapsible panel 210 in browser 300 may create state data. This statedata may indicate that collapsible panel 210 has been collapsed. Thisstate data, at least eventually, may need to be transmitted to theserver that provided the webpage containing collapsible panel 210.Whether this state data is transmitted to the server approximatelyimmediately or at some later point in time may be contingent on whetherany non-state data is present to be transmitted to the server. Forexample, if the user added, modified, or deleted one or more quantitiesand/or ages of dogs present in expanded collapsible panel 210, this datamay constitute non-state data. As such, when collapsible panel 210 iscollapsed, the non-state data indicating the changes to the quantityand/or ages of the dogs may be transmitted to the server with the statedata indicating that collapsible panel 210 has been collapsed together.

However, if the user did not add, modify, or delete one or morequantities and/or ages of the dogs present in expanded collapsible panel210 (for example, the user only viewed the data), no non-state data mayneed to be transmitted to the server (e.g., the displayed quantities andages of collapsible panel 210 are already stored by the server). Thestate data that indicates that collapsible panel 210 has been collapsedmay be stored until non-state data needs to be transmitted to theserver. State data for multiple collapsible panels may be stored untilnon-state data needs to be transmitted to the server. For example,referring to system 100, a state data cache, such as state data cache152 of browser 150, may store state data until non-state data needs tobe transmitted to the server. Once non-state data needs to betransmitted to the server, all (or some) of this state data present instate data cache 152 may be transmitted to the server. State data cache152 may then be cleared.

If collapsible panel 210 is collapsed, and no non-state data needs to betransmitted to the server, the state data may be temporarily stored in astate data cache. If the user then reexpands collapsible panel 210before the state data is transmitted to the server, collapsible panel210 may be expanded without requiring any communication with the serverbecause all of the information of expanded collapsible panel 210 maystill be present on the computerized device. If collapsible panel 210 isre-expanded before the state data that indicates that collapsible panel210 had been collapsed is transmitted to the server, this state data maybe expunged from the state data cache and, as such, may not betransmitted to the server, because such state data is no longer current.

While browser 200 and browser 300 of FIG. 2 and FIG. 3, respectively,contain collapsible panels related to animals, it should be understoodthat these collapsible panels are for example purposes only. The namesand/or content of the collapsible panels may vary. The number ofcollapsible panels may be greater or fewer. The presentation of thecollapsible panels, including how the data associated with thecollapsible panel is displayed when the collapsible panel is expandedand how the collapsible panel is displayed when collapsed (e.g., how anassociated indicator, such as indicator 220, is presented) may vary.Additional collapsible panels may be nested.

System 100 may be used to allow various collapsible panels to be used aspart of web pages by server 120 to various computerized devices, such ascomputer system 110 and mobile device 160. System 100 may permitcollapsible panels such as those displayed in browser 200 and browser300 of FIG. 2 and FIG. 3, respectively. System 100 may be used toperform various methods involving deferred data posts to a serverrelated to the collapsible panels. FIG. 4 illustrates an embodiment of amethod 400 for deferring a data post related to collapsing a collapsibledisplay panel. Method 400 may be performed by system 100. Method 400 mayalso be performed by some other system for deferring a data post relatedto a collapsible display panel. Each step of method 400 may be performedby a computerized device, such as a computer system or mobile device,operated by a user.

At step 410, a collapsible panel may be collapsed. The collapsible panelmay be present within a webpage being displayed to a user in a browser.The collapsible panel may be collapsed due to input received from theuser that indicates the collapsible panel is to be collapsed. Collapsingthe collapsible panel may involve data, which may be a portion of thedataset associated with the collapsible panel, no longer beingdisplayed. A title of the collapsible panel may remain displayed whenthe collapsible panel is collapsed.

At step 420, a determination may be made that no non-state data needs tobe transmitted to the server. Determining that no non-state data needsto be transmitted to the server may involve determining the user has notadded, modified, and/or deleted any data that corresponds to thecollapsible panel (e.g., data within the collapsible panel). As such,the data linked with the collapsible panel stored by the server iscurrent as compared with the non-state data displayed by the browser ofthe computerized device.

At step 430, state change data that indicates the collapsible panel hasbeen collapsed may be stored locally by the computerized device. Forexample, referring to FIG. 1, computer system 110 may be executingbrowser 150. State data that has not been transmitted to server 120 maybe stored by state data cache 152. The state change data stored at step430 may indicate which collapsible panel has been collapsed (e.g., anindicator of the collapsible panel may be stored) and an indication ofthe collapsed state. As such, despite state data having been generatedand the collapsible panel being collapsed at step 410, no data has beentransmitted to the server at least since step 410 because only statedata is queued for transmission to the server.

At step 440, non-state data may be identified that needs to betransmitted to the server. This may involve non-state data linked withsome other collapsible panel or some other portion of the webpage thatrequires data to be identified. As an example of non-state data, datawithin a collapsible panel that was added, modified, or deleted by theuser may be identified as non-state data.

Once non-state data has been identified at step 440, the non-state dataand the state data stored at step 450 may be transmitted to the servertogether. As such, rather than the state data and the non-state databeing transmitted to the server independently, the state data and thenon-state data are transmitted to the server together.

In method 400, state data related to one collapsible panel is stored atstep 430 until transmission to the server at step 450 with non-statedata. In some embodiments, state data related to multiple collapsiblepanels may be stored until non-state data is identified for transmissionto the server. As such, multiple pieces of state data, which may berelated to multiple collapsible panels, may be transmitted to the servertogether with non-state data.

FIG. 5 illustrates another embodiment of a method 500 for deferring adata post related to collapsing a collapsible display panel. Method 500may be performed by system 100. Method 500 may also be performed by someother system for deferring a data post related to a collapsible displaypanel. Each step of method 500 may be performed by a computerizeddevice, such as a computer system or mobile device, operated by a user.Method 500 may represent a more detailed embodiment of method 400.Alternatively, method 500 may represent a separate method from method400.

At step 510, input may be received that indicates a collapsible panel isto be collapsed. The collapsible panel may be present within a webpagebeing displayed to a user in a browser. This input may be received fromthe user. For example, referring to browser 300 of FIG. 3, by a userclicking on indicator 310, the user may have provided input thatindicates that collapsible panel 210 is to be collapsed.

At step 520, the collapsible panel may be collapsed. The collapsiblepanel may be collapsed due to the input received from the user at step510 that indicates the collapsible panel is to be collapsed. Collapsingthe collapsible panel may involve a portion of a dataset associated withthe collapsible panel no longer being displayed. A title of thecollapsible panel may remain displayed when the collapsible panel iscollapsed.

At step 525, state data may be generated. The state data may include anindication of the collapsible panel and an indication that the state thecollapsible panel has been set to collapsed.

At step 530, a determination may be made whether non-state data needs tobe transmitted to the server. Determining that non-state data needs tobe transmitted to the server may involve determining if the user hasadded, modified, and/or deleted any data within the collapsible panel.As such, if the data linked with the collapsible panel stored by theserver matches the non-state data displayed by the browser of thecomputerized device, no non-state data may need to be transmitted to theserver; if data linked with the collapsible panel stored by the serverdoes not match the non-state data displayed by the browser of thecomputerized device, non-state data may need to be transmitted to theserver.

If non-state data is present to be transmitted to the server, method 500may proceed to step 540. At step 540, the state data generated at step525 and the nonstate data may be transmitted to the server together.

If no nonstate data is present to be transmitted to the server, method500 may proceed to step 550. At step 550, the state change datagenerated at step 525 may be stored locally by the computerized device.For example, referring to FIG. 1, computer system 110 may be executingbrowser 150. State data that has not been transmitted to server 120 maybe stored by state data cache 152. As such, despite state data havingbeen generated and the collapsible panel being collapsed at step 520, nodata is transmitted to the server because only state data is queued fortransmission to the server. As such, at least since step 510 no data mayhave been transferred to the server.

At step 560, input may be received that constitutes non-state data. Suchinput may be received from the user of the computerized device. Forexample, the input may involve additions, deletions, or modifications todata present within another collapsible panel or another portion of theweb page. As another example, the user may have attempted to reload thewebpage, wherein the reload request would constitute non-state data.Other examples of non-state data may include a request for a differentweb page to be loaded and then returning to the initial web page, or thecollapsible panel being within some other entity on the web page that ishidden, wherein user interaction may be used to restore the entity thusallowing for display of the collapsible panel. At step 570, thenon-state data received at step 560 may be identified as needing to betransmitted to the server.

Once non-state change data has been identified at step 570 as needing tobe transmitted to the server, the non-state data and the state datastored at step 550 may be transmitted to the server together. Once thestate data stored at step 550 has been transmitted, the state data maybe deleted from a state data cache of the computerized device.

In method 500, state change data related to one collapsible panel isstored at step 550 until transmission to the server at step 580 withnon-state change data. In some embodiments, state change data related tomultiple collapsible panels may be stored until non-state change data isidentified to be transmitted to the server. For example, following step550, method 500 may return to step 510. This may occur if the user hascollapsed two collapsible panels and at least the first collapsiblepanel did not require any non-state data to be transmitted to theserver. As such, multiple pieces of state change data, which may berelated to multiple collapsible panels, may be transmitted to the servertogether with non-state change data.

FIG. 6 illustrates another embodiment of a method 600 for deferring adata post related to collapsing a collapsible display panel. Method 600may be performed by system 100. Method 600 may also be performed by someother system for deferring a data post related to a collapsible displaypanel. Each step of method 600 may be performed by a computerizeddevice, such as a computer system or mobile device, operated by a user.Method 600 may represent a more detailed embodiment of method 400 and/ormethod 500. Alternatively, method 600 may represent a separate methodfrom method 400 and method 500.

At step 605, input may be received that indicates a collapsible panel isto be collapsed. The collapsible panel may be present within a webpagebeing displayed to a user in a browser. This input may be received froma user. For example, referring to browser 300 of FIG. 3, by a userclicking on indicator 310, the user may have provided input thatindicates collapsible panel 210 is to be collapsed.

At step 610, if data has been added, deleted, and/or modified by theuser, a validity check may be performed on data provided by the userwithin the collapsible panel to determine if each data entry is valid.For example, if a data field within the collapsible panel requests asocial security number, the data field may be checked to ensure thatexactly nine numerical digits were provided. The validity check may varyaccording to the data that is expected to be received in each datafield. In some embodiments, if a data field is left blank, the validitycheck may fail. This validity check, which may be performed local to thecomputerized device (without communication with the server) may checkfor a proper form of provided data, but may not check to see if data isvalid. For example, a social security number may be verified to be thecorrect number of digits, but may not be checked for whether theprovided number is an actual assigned social security number. If thevalidity check fails for one or more data fields within the collapsiblepanel, method 600 may proceed to step 615. At step 615, the collapsiblepanel may be maintained as expanded or re-expanded if it has beencollapsed. The user may also be alerted which data fields failed thevalidity check.

If the validity check passes or no validity check was necessary (e.g.,no modified, added, or deleted data), method 600 may proceed to step620. At step 620, the collapsible panel may be collapsed. Thecollapsible panel may be collapsed due to the input received from theuser at step 605 that indicates the collapsible panel is to be collapsedand the validity check being passed. Collapsing the collapsible panelmay involve a portion of a dataset associated with the collapsible panelno longer being displayed to the user. Prior to step 605, a webpage mayhave been received by a computerized device from a server. The webpagemay have one or more collapsible panels, each panel allowing for thedisplay of a portion of a dataset. A title of the collapsible panel mayremain displayed when the collapsible panel is collapsed.

At step 622, state data may be generated. The state data may include anindication of the collapsible panel and an indication of the state thecollapsible panel has been set to (e.g., collapsed).

At step 625, a determination may be made whether non-state data needs tobe transmitted to the server. Determining that non-state data needs tobe transmitted to the server may involve determining if user has added,modified, and/or deleted any data within the collapsible panel. As such,if the data linked with the collapsible panel stored by the servermatches the non-state data displayed by the browser of the computerizeddevice, no non-state data may need to be transmitted to the server; ifdata linked with the collapsible panel stored by the server does notmatch the non-state data displayed by the browser of the computerizeddevice, non-state data may need to be transmitted to the server.Determining whether non-state data needs to be transmitted to the servermay be performed as part of the validity check of step 610.

If non-state data is present to be transmitted to the server, method 600may proceed to step 630. At step 630, the state data generated at step622 and the non-state data may be transmitted to the server together. Atstep 635, another validity check may be performed remotely by theserver. This validity check may be performed to determine if the variousinput (e.g., non-state data) provided by the user is valid. Thisvalidity check may determine if the input provided is substantivelyvalid. For example, a social security number may be checked to verifythat it is an actual social security number issued by the government. Ifthe validity check fails, the user may be notified as such and promptedto correct the input that failed the validity check. Following non-statedata related to the collapsible panel being transferred to the server,if the user reexpands the collapsible panel, the portion of the datasetlinked with the collapsible panel may need to be transferred from theserver to the computerized device.

If no non-state data is present to be transmitted to the server, method600 may proceed to step 640. At step 640, the state change datagenerated at step 622 may be stored locally by the computerized device.For example, referring to FIG. 1, computer system 110 may be executingbrowser 150. State data that has not been transmitted to server 120 maybe stored by state data cache 152. As such, despite state data havingbeen generated and the collapsible panel being collapsed at step 620, nodata is transmitted to the server because only state data is queued fortransmission to the server.

At step 645, the user may, optionally, re-expand the same collapsiblepanel. If the user provides such input, the collapsed panel may bere-expanded. The stored state data of step 640 linked with thecollapsible panel may be deleted or modified to reflect that thecollapsible panel has been expanded. Since all of the data related tothe collapsible panel may already be present at the computerized device,no communication with the server may be necessary to re-expand thecollapsible panel. As such, if input is received that results in thecollapsible panel being re-expanded, the collapsible panel may bere-expanded and the method may return to step 605 upon input beingreceived that re-collapses the collapsible panel.

Also, dependent on user input, if an additional collapsible panel iscollapsed by the user following step 640, method 600 may return to step605. As such, multiple instances of state data may be stored at the sametime. Such multiple instances of state data may be transmitted to theserver together, such as at step 660 or at step 630.

At step 650, input may be received that constitutes non-state data. Suchinput may be received from the user of the computerized device. Forexample, the input may involve additions, deletions, or modifications todata present within some other collapsible panel or to another portionof the web page. At step 655, the non-state data received at step 650may be identified as needing to be transmitted to the server.

Once non-state change data has been identified at step 655 as needing tobe transmitted to the server, the non-state data and the state datastored at step 640 may be transmitted to the server together. Once thestate data stored at step 640 has been transmitted, the state data maybe deleted from the computerized device.

At step 665, a validity check may be performed on the non-state datareceived by the server. This validity check may be the as or similar tothe same validity check performed at step 635. This validity check maybe performed by the server to determine if the various input (e.g.,non-state data) provided by the user is valid. This validity check maydetermine if the input provided is substantively valid. For example, asocial security number may be checked to verify that it is an actualsocial security number issued by the government.

If at a point during method 600 the display state of the collapsiblepanels becomes corrupt, the last known good state may be returned to.

A computer system as illustrated in FIG. 7 may incorporate as part ofthe previously described computerized devices. For example, computersystem 700 can represent some of the components of the mobile devices,computer systems, computerized devices, and/or servers discussed herein.It should be noted that FIG. 7 is meant only to provide a generalizedillustration of various components, any or all of which may be utilizedas appropriate. FIG. 7, therefore, broadly illustrates how individualsystem elements may be implemented in a relatively separated orrelatively more integrated manner.

The computer system 700 is shown comprising hardware elements that canbe electrically coupled via a bus 705 (or may otherwise be incommunication, as appropriate). The hardware elements may include one ormore processors 710, including without limitation one or moregeneral-purpose processors and/or one or more special-purpose processors(such as digital signal processing chips, graphics accelerationprocessors, and/or the like); one or more input devices 715, which caninclude without limitation a mouse, a keyboard and/or the like; and oneor more output devices 720, which can include without limitation adisplay device, a printer and/or the like.

The computer system 700 may further include (and/or be in communicationwith) one or more non-transitory storage devices 725, which cancomprise, without limitation, local and/or network accessible storage,and/or can include, without limitation, a disk drive, a drive array, anoptical storage device, solid-state storage device such as a randomaccess memory (“RAM”) and/or a read-only memory (“ROM”), which can beprogrammable, flash-updateable and/or the like. Such storage devices maybe configured to implement any appropriate data stores, includingwithout limitation, various file systems, database structures, and/orthe like.

The computer system 700 might also include a communications subsystem730, which can include without limitation a modem, a network card(wireless or wired), an infrared communication device, a wirelesscommunication device and/or chipset (such as a Bluetooth™ device, an802.11 device, a WiFi device, a WiMax device, cellular communicationfacilities, etc.), and/or the like. The communications subsystem 730 maypermit data to be exchanged with a network (such as the networkdescribed below, to name one example), other computer systems, and/orany other devices described herein. In many embodiments, the computersystem 700 will further comprise a working memory 735, which can includea RAM or ROM device, as described above.

The computer system 700 also can comprise software elements, shown asbeing currently located within the working memory 735, including anoperating system 740, device drivers, executable libraries, and/or othercode, such as one or more application programs 745, which may comprisecomputer programs provided by various embodiments, and/or may bedesigned to implement methods, and/or configure systems, provided byother embodiments, as described herein. Merely by way of example, one ormore procedures described with respect to the method(s) discussed abovemight be implemented as code and/or instructions executable by acomputer (and/or a processor within a computer); in an aspect, then,such code and/or instructions can be used to configure and/or adapt ageneral purpose computer (or other device) to perform one or moreoperations in accordance with the described methods.

A set of these instructions and/or code might be stored on anon-transitory computer-readable storage medium, such as the storagedevice(s) 725 described above. In some cases, the storage medium mightbe incorporated within a computer system, such as computer system 700.In other embodiments, the storage medium might be separate from acomputer system (e.g., a removable medium, such as a compact disc),and/or provided in an installation package, such that the storage mediumcan be used to program, configure and/or adapt a general purposecomputer with the instructions/code stored thereon. These instructionsmight take the form of executable code, which is executable by thecomputer system 700 and/or might take the form of source and/orinstallable code, which, upon compilation and/or installation on thecomputer system 700 (e.g., using any of a variety of generally availablecompilers, installation programs, compression/decompression utilities,etc.) then takes the form of executable code.

It will be apparent to those skilled in the art that substantialvariations may be made in accordance with specific requirements. Forexample, customized hardware might also be used, and/or particularelements might be implemented in hardware, software (including portablesoftware, such as applets, etc.), or both. Further, connection to othercomputing devices such as network input/output devices may be employed.

As mentioned above, in one aspect, some embodiments may employ acomputer system (such as the computer system 700) to perform methods inaccordance with various embodiments of the invention. According to a setof embodiments, some or all of the procedures of such methods areperformed by the computer system 700 in response to processor(s) 710executing one or more sequences of one or more instructions (which mightbe incorporated into the operating system 740 and/or other code, such asan application program 745) contained in the working memory 735. Suchinstructions may be read into the working memory 735 from anothercomputer-readable medium, such as one or more of the storage device(s)725. Merely by way of example, execution of the sequences ofinstructions contained in the working memory 735 might cause theprocessor(s) 710 to perform one or more procedures of the methodsdescribed herein.

The terms “machine-readable medium” and “computer-readable medium,” asused herein, refer to any medium that participates in providing datathat causes a machine to operate in a specific fashion. In an embodimentimplemented using the computer system 700, various computer-readablemedia might be involved in providing instructions/code to processor(s)710 for execution and/or might be used to store and/or carry suchinstructions/code. In many implementations, a computer-readable mediumis a physical and/or tangible storage medium. Such a medium may take theform of a non-volatile media or volatile media. Non-volatile mediainclude, for example, optical and/or magnetic disks, such as the storagedevice(s) 725. Volatile media include, without limitation, dynamicmemory, such as the working memory 735.

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, punchcards, papertape, any other physical medium with patternsof holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip orcartridge, or any other medium from which a computer can readinstructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to the processor(s) 710for execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by the computer system 700.

The communications subsystem 730 (and/or components thereof) generallywill receive signals, and the bus 705 then might carry the signals(and/or the data, instructions, etc. carried by the signals) to theworking memory 735, from which the processor(s) 710 retrieves andexecutes the instructions. The instructions received by the workingmemory 735 may optionally be stored on non-transitory storage device(s)725 either before or after execution by the processor(s) 710.

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and/or various stages may be added, omitted, and/or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations will provide those skilled in the art with an enablingdescription for implementing described techniques. Various changes maybe made in the function and arrangement of elements without departingfrom the spirit or scope of the disclosure.

Also, configurations may be described as a process which is depicted asa flow diagram or block diagram. Although each may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process may have additional steps notincluded in the figure. Furthermore, examples of the methods may beimplemented by hardware, software, firmware, middleware, microcode,hardware description languages, or any combination thereof. Whenimplemented in software, firmware, middleware, or microcode, the programcode or code segments to perform the necessary tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of steps may be undertaken before, during, or after theabove elements are considered. Accordingly, the above description doesnot bound the scope of the claims.

What is claimed is:
 1. A method for deferring a transmission of datarelated to collapsing a collapsible display panel, the methodcomprising: collapsing the collapsible display panel; generating statedata that indicates the collapsible display panel has been collapsed;determining that no non-state data needs to be transmitted to a server;in response to determining that no non-state data needs to betransmitted to the server, storing, by the computerized device, thestate data at least until non-state data is to be transmitted to theserver; after storing the state data, identifying non-state data that isto be transmitted to the server; and in response to identifying thenon-state data that is to be transmitted to the server, transmitting tothe server, the state data and the non-state data together.
 2. Themethod for deferring the transmission of data related to collapsing thecollapsible display panel of claim 1, further comprising: aftercollapsing the collapsible display panel, receiving input that indicatesto expand the collapsible display panel; in response to receiving inputthat indicates to expand the collapsible display panel, determining thatthe state data has not been transmitted to the server; and in responseto determining that the state data has not been transmitted to theserver, expanding the collapsible display panel without retrieving datacorresponding to the collapsible display panel from the server.
 3. Themethod for deferring the transmission of data related to collapsing thecollapsible display panel of claim 1, wherein transmitting to theserver, the state data and the non-state data comprises transmittingstate data corresponding to a plurality of collapsible display panelstogether.
 4. The method for deferring the transmission of data relatedto collapsing the collapsible display panel of claim 1, furthercomprising: after collapsing the collapsible display panel andtransmitting the state data, receiving input that indicates to expandthe collapsible display panel that is collapsed; and retrieving from theserver, a portion of a dataset corresponding to the collapsible displaypanel.
 5. The method for deferring the transmission of data related tocollapsing the collapsible display panel of claim 1, wherein thenon-state data comprises data provided by a user.
 6. The method fordeferring the transmission of data related to collapsing the collapsibledisplay panel of claim 1, wherein the collapsible display panel isdisplayed within an Internet browser.
 7. The method for deferring thetransmission of data related to collapsing the collapsible display panelof claim 1, further comprising: determining that the non-state data isvalid, wherein transmitting the non-state data to the server isperformed in response to determining the non-state data is valid.
 8. Themethod for deferring the transmission of data related to collapsing thecollapsible display panel of claim 1 wherein the collapsible displaypanel is one of a plurality of collapsible display panels that are eachconfigured to display a portion of a dataset stored by the server, themethod further comprising: receiving a webpage that comprises theplurality of display panels.
 9. A computer program product residing on anon-transitory processor-readable medium and comprisingprocessor-readable instructions configured to cause a processor to:cause a collapsible display panel to be collapsed; generate state datathat indicates the collapsible display panel has been collapsed;determine that no non-state data needs to be transmitted to a server; inresponse to determining that no non-state data needs to be transmittedto the server, cause, at least until non-state data is to be transmittedto the server, the state data to be stored; after storing the statedata, identify non-state data that is to be transmitted to the server;and in response to identifying the non-state data that is to betransmitted to the server, cause the state data and the non-state datato be transmitted to the server.
 10. The computer program product ofclaim 9, wherein the processor-readable instructions further compriseadditional processor-readable instructions configured to cause theprocessor to: after collapsing the collapsible display panel, causeinput to be received that indicates to expand the collapsible displaypanel; in response to receiving input that indicates to expand thecollapsible display panel, determine that the state data has not beentransmitted to the server; and in response to determining that the statedata has not been transmitted to the server, cause the collapsibledisplay panel to be expanded without retrieving data corresponding tothe collapsible display panel from the server.
 11. The computer programproduct of claim 9, wherein the processor-readable instructionsconfigured to cause the processor to cause the state data and thenon-state data to be transmitted to the server comprises additionalprocessor-readable instructions configured to cause state datacorresponding to a plurality of collapsible display panels to betransmitted together.
 12. The computer program product of claim 9,wherein the processor-readable instructions further comprise additionalprocessor-readable instructions configured to cause the processor to:after collapsing the collapsible display panel and transmitting thestate data, cause input to be received that indicates to expand thecollapsible display panel that is collapsed; and cause a portion of adataset corresponding to the collapsible display panel to be retrievedfrom the server.
 13. The computer program product of claim 9, whereinnon-state data comprises data provided by a user.
 14. The computerprogram product of claim 9, wherein the collapsible display panel isdisplayed within an Internet browser.
 15. The computer program productof claim 9, wherein the processor-readable instructions further compriseadditional processor-readable instructions configured to cause theprocessor to: determine that the non-state data is valid, whereintransmitting the non-state data to the server is performed in responseto determining the non-state data is valid.
 16. The computer programproduct of claim 9 wherein the collapsible display panel is one of aplurality of collapsible display panels that are each configured todisplay a portion of a dataset stored by the server.
 17. A system fordeferring a transmission of data related to collapsing a collapsibledisplay panel, the system comprising: a computer system, comprising: aprocessor; and a memory communicatively coupled with and readable by theprocessor and having stored therein processor-readable instructionswhich, when executed by the processor, cause the processor to: cause thecollapsible display panel to be collapsed; generate state data thatindicates the collapsible display panel has been collapsed; determinethat no non-state data needs to be transmitted to a server; in responseto determining that no non-state data needs to be transmitted to theserver, cause, at least until non-state data is to be transmitted to theserver, the state data to be stored; after storing the state data,identify non-state data that is to be transmitted to the server; and inresponse to identifying the non-state data that is to be transmitted tothe server, cause the state data and the non-state data to betransmitted to the server.
 18. The system of claim 17 for deferring thetransmission of data related to collapsing the collapsible displaypanel, wherein the collapsible display panel is one of a plurality ofcollapsible display panels that are each configured to display a portionof a dataset stored by the server.
 19. The system of claim 17 fordeferring the transmission of data related to collapsing the collapsibledisplay panel, wherein the processor-readable instructions furthercomprise additional processor-readable instructions configured to causethe processor to: after collapsing the collapsible display panel, causeinput to be received that indicates to expand the collapsible displaypanel; in response to receiving input that indicates to expand thecollapsible display panel, determine that the state data has not beentransmitted to the server; and in response to determining that the statedata has not been transmitted to the server, cause the collapsibledisplay panel to be expanded without retrieving data corresponding tothe collapsible display panel from the server.
 20. The system of claim17 for deferring the transmission of data related to collapsing thecollapsible display panel, wherein the processor-readable instructionsconfigured to cause the processor to cause the state data and thenon-state data to be transmitted to the server comprises additionalprocessor-readable instructions configured to cause state datacorresponding to a plurality of collapsible display panels to betransmitted together.